home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / Berkeley DB 1.8.5a / clib / snprintf.c < prev    next >
C/C++ Source or Header  |  1995-06-14  |  776b  |  55 lines

  1. #include <sys/types.h>
  2. #include <sys/cdefs.h>
  3.  
  4. #include <compat.h>
  5.  
  6. #ifdef __STDC__
  7. #include <stdarg.h>
  8. #else
  9. #include <varargs.h>
  10. #endif
  11.  
  12. int
  13. #ifdef __STDC__
  14. snprintf(char *str, size_t n, const char *fmt, ...)
  15. #else
  16. snprintf(str, n, fmt, va_alist)
  17.     char *str;
  18.     size_t n;
  19.     const char *fmt;
  20.     va_dcl
  21. #endif
  22. {
  23.     va_list ap;
  24.     char *rp;
  25.     int rval;
  26. #ifdef __STDC__
  27.     va_start(ap, fmt);
  28. #else
  29.     va_start(ap);
  30. #endif
  31. #ifdef VSPRINTF_CHARSTAR
  32.     rp = vsprintf(str, fmt, ap);
  33.     va_end(ap);
  34.     return (strlen(rp));
  35. #else
  36.     rval = vsprintf(str, fmt, ap);
  37.     va_end(ap);
  38.     return (rval);
  39. #endif
  40. }
  41.  
  42. int
  43. vsnprintf(str, n, fmt, ap)
  44.     char *str;
  45.     size_t n;
  46.     const char *fmt;
  47.     va_list ap;
  48. {
  49. #ifdef VSPRINTF_CHARSTAR
  50.     return (strlen(vsprintf(str, fmt, ap)));
  51. #else
  52.     return (vsprintf(str, fmt, ap));
  53. #endif
  54. }
  55.